#include "ShareMemory.hpp"
#include "PipeFifo.hpp"

int main()
{
    ShareMemory shm;


    shm.GetKey();
    shm.CreateShm();
    shm.CreatAtch();

    shm.ShmMeta();


    // Server server;
    // // 进行通信
    // // 进行通信
    // std::cout << "Sever read: ";

    // struct data *message = new struct data;
    // while(true)
    // {
    //     server.RecivePipe();
    //     struct data* tm= (struct data*)shm.GetAddr();
    //     message->type = tm->type;
    //     strcpy(message->text,tm->text);
    //     printf("type: %d, text: %s\n", message->type,message->text);
    //     sleep(1);
    // }
    // // char *a = (char *)shm.GetAddr();
    // while (true)
    // {
    //     std::cout << "wait Client write: " << std::endl;
    //     server.RecivePipe();
    //     printf("%s\n", a);
    //     // sleep(3);
    // }

    std::cout << "Sever read done...." << std::endl;
    shm.DeleteAtch();
    shm.DestoryShm(); // 销毁共享内存
    // // 共享内存文件生命周期随系统，返回共享内存描述符
    // // 同时共享内存也是有权限的，我们可以在shmflg中自己设置权限

    // sleep(10);

    // // 让进程与共享内存关联起来

    // sleep(5);

    // // 去关联

    // sleep(10);

    return 0;
}